﻿#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;


//³õÊ¼»¯ÁÐ±í
//class A
//{
//public:
//	A(int a)
//		:_a(a)
//	{}
//
//private:
//	int _a;
//
//};
//
//class B
//{
//public:
//	B(int a, int ref)
//		:_aonj(a)
//		, _ret(ref)
//		, _n(10)
//	{}
//
//private:
//	A _aonj;			//Ã»ÓÐÄ¬ÈÏ¹¹Ôìº¯ÊýÀàÐÍ
//	int& _ret;			//ÒýÀàÐÍ
//	const int _n;		//const
//};

//=====================================================
//¸´Ï°Òþº¬thisÖ¸Õë
//class C
//{
//public:
//	C(int year = 0, int month = 1, int day = 1)
//	{
//		this->_year = year;
//		this->_month = month;
//		this->_day = day;
//	}
//
//	C(const C& d)
//	{
//		this->_year = d._year;
//		this->_month =d._month;
//		this->_day = d._day;
//
//	}
//
//	void Print(/* &c1 */)	//Òþ²ØµÄthisÖ¸Õë
//	{
//		cout << _year << " - " << _month << " - " << _day << endl;
//	}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	B b(11, 2);
//	C c;
//	C c1 = c;
//
//	c1.Print();		//c.print(&c1);
//	return 0;
//}


//==========================================================
//¾¡Á¿Ê¹ÓÃ³õÊ¼»¯ÁÐ±í³õÊ¼»¯£¬ÒòÎª²»¹ÜÄãÊÇ·ñÊ¹ÓÃ³õÊ¼»¯ÁÐ±í£¬¶ÔÓÚ×Ô¶¨ÒåÀàÐÍ³ÉÔ±±äÁ¿£¬Ò»¶¨»áÏÈÊ¹
//ÓÃ³õÊ¼»¯ÁÐ±í³õÊ¼»¯¡£
//class Time
//{
//public:
//	Time(int hour = 0)
//		:_hour(hour)
//	{
//		cout << "Time()" << endl;
//	}
//private: 
//	int _hour;
//};
//
//
//class Date
//{
//public:
//	Date(int day)
//	{}
//
//private:
//	int _day;
//	Time _t;
//};
//
//int main()
//{
//	Date d(1);
//	return 0;
//}


//====================================================
//static³ÉÔ±
//ÃæÊÔÌâ£ºÊµÏÖÒ»¸öÀà£¬¼ÆËãÖÐ³ÌÐòÖÐ´´½¨³öÁË¶àÉÙ¸öÀà¶ÔÏó
//
//class A
//{
//public:
//	A()
//	{
//		++_cout;
//	}
//	A(const A& a)
//	{
//		++_cout;
//	}
//	static int getcout()
//	{
//		return _cout;
//	}
//
//	static void func1()
//	{
//		cout << 1 << endl;
//		//func2();
//	}
//
//	void func2()
//	{
//		func3();
//		cout << 2 << endl;
//	}
//
//	static void func3()
//	{
//		cout << "func3" << endl;
//		cout << 3 << endl;
//	}
//
//	void func4()
//	{
//		func3();
//		cout << 4 << endl;
//	}
//private:
//	static int _cout;
//};
//
//
//
//
//
//int A::_cout = 0;
//
//int main()
//{
//	A a;
//	a.func1();
//	A::func3();
//	return 0;
//}


//================================================================
//ÓÑÔªº¯ÊýºÍÓÑÔªÀà

//class A
//{
//public:
//	class B
//	{
//		void funcB()
//		{
//			A aa;
//			aa._a = 1;
//			
//		}
//
//	private:
//		int _b;
//	};
//
//	void func()
//	{
//		B bb;		
//		//bb._b = 10;	//BÊÇAµÄÓÐÔªÀà£¬B¿ÉÒÔ·ÃÎÊµ½AµÄË½ÓÐ³ÉÔ±±äÁ¿.
//						//A²»¿ÉÒÔ·ÃÎÊBµÄË½ÓÐ³ÉÔ±±äÁ¿
//	}
//private:
//	int _a;
//};
//
//int main()
//{
//	A a;
//	A::B bb1;
//	return 0;
//}
//
//
//class Data
//{
//public:
//
//	////Ä¬ÈÏ¹¹Ôìº¯Êý
//	//Data(int year = 0, int month = 1, int day = 1)
//	//{
//	//	_year = day;
//	//	_month = month;
//	//	_day = day;
//	//}
//
//	//ÓÑÔª¹Ø¼ü×Öfriend
//	friend ostream& operator<<(ostream& cout, const Data& d);
//	friend istream& operator>>(istream& cin, Data& d);
//
//	Data(int year, int month, int day)
//		:_year(year)
//		,_month(month)
//		,_day(day)
//	{}
//
//	//ostream& operator<<(ostream& _cout)	//<<(&d, &cout);µÚÒ»²Ù×÷ÊýÊÇthisÖ¸Õë
//	//{
//	//	_cout << _year << " - " << _month << " - " << _day << endl;
//	//	return _cout;
//	//}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
////¶¨Òå³ÉÈ«¾Ö¾Í»á·ÃÎÊ²»µ½Ë½ÓÐ³ÉÔ±±äÁ¿£¬ÄÇÎÒÃÇ¾ÍÒªÓÃÓÑÔª£¬
//ostream& operator<<(ostream& cout, const Data& d)
//{
//	cout << d._year << " - " << d._month << " - " << d._day << endl;
//	return cout;
//}
//
//istream& operator>>(istream& cin, Data& d)
//{
//	cin >> d._year >> d._month >> d._day;
//	return cin;
//}
//
//int main()
//{
//	//Data d2;
//	Data d(1970, 1, 1);		//d.Data(&d,int year, int month, int day)
//
//	//d << cout;		//¿É¶ÁÐÔ²»¸ß£¬¿´ÆðÀ´ÊÇcout Á÷Ïòd£»Òªcout << d;
//	//cout << d;			//ÕâÑù¾Í¿ÉÒÔÌá¸ß¿É¶ÁÐÔÁË¡£
//
//	cin >> d;
//	cout << d;
//	return 0;
//}

//ÓÑÔ¶º¯º¯Êý
//ÓÅµã£º1.Ïñ<<¡¢>>£¬ÕâÁ½¸öÔËËã·û£¬¿ÉÒÔÖ±½ÓÔÚÈ«¾Ö¶¨Òå£¬ÓÃfriend¹Ø¼ü×ÖÉùÃ÷£¬¾Í¿ÉÒÔ·ÃÎÊµ½ÀàµÄË½ÓÐ³ÉÔ±±äÁ¿
//		2.ÓÑÔªº¯Êý¿ÉÒÔÖ±½Ó·ÃÎÊÀàµÄË½ÓÐ³ÉÔ±£¬ËüÊÇ¶¨ÒåÔÚÀàÍâ²¿µÄÆÕÍ¨º¯Êý£¬²»ÊôÓÚÈÎºÎÀà£¬µ«ÐèÒªÔÚÀàµÄÄÚ²¿Éù
			//Ã÷£¬ÉùÃ÷Ê±ÐèÒª¼Ófriend¹Ø¼ü×Ö

//È±µã£ºÓÑÔªÌá¹©ÁËÒ»ÖÖÍ»ÆÆ·â×°µÄ·½Ê½£¬ÓÐÊ±Ìá¹©ÁË±ãÀû¡£µ«ÊÇÓÑÔª»áÔö¼ÓñîºÏ¶È£¬ÆÆ»µÁË·â×°£¬ËùÒÔÓÑÔª²»ÒË¶à
		//ÓÃ


class A
{
	void func1()
	{

	}
	static void func2()
	{
		func1();
	}

	void func3()
	{
		func4();
	}

	static void func4()
	{
		cout << 1 << endl;
	}
};


int main()
{
	//func2();
	return 0;
}